﻿using ImageMagick;

using MyFileView.Shard.Model;

using MyFleView.Core;

using System.Runtime.CompilerServices;
using System.Threading;
using System.Web;

namespace MyFileView.Core.Core;

public interface IConvertFileFactory: RegisterAutofac
{
    public ConvertFileContext ConvertFileContext { get; }

    public PreviewFileResponseModel PreviewFileResponseModel { get; }
  
    //   public HttpContextBase HttpContext { get; set; }

    //   ConvertFileContext CreateContext();
}
public class ConvertFileFactory : IConvertFileFactory
{
    public ConvertFileFactory(ConvertFileContext convertFileContex)//
    {
        ConvertFileContext = convertFileContex;
    }

    public ConvertFileContext ConvertFileContext{get;}
  


    /// <summary>
    /// 用于各个服务之间用到的
    /// </summary>

    public PreviewFileResponseModel PreviewFileResponseModel { get; set; } = new();


   // public HttpContextBase HttpContext { get; set; }
   

 

    //public ConvertFileContext CreateContext()
    //{
    //  //  var context = new ConvertFileContext();
    //    //context.LibreOfficeDocument = new LibreOfficeDocumentConvert(convertCore,context);
    //    return context;
    //}
    //ConditionalWeakTable<ConvertFileContext, ConvertFileContext> _parent = new ConditionalWeakTable<ConvertFileContext, ConvertFileContext>();
    //private AsyncLocal<ConvertFileContext> _convertFileContext = new AsyncLocal<ConvertFileContext>();// {get;}
    //public ConvertFileFactory(ConvertFileContext convertFileContex) //
    //{
    //    ConvertFileContext = convertFileContex;
    //}
    //public ConvertFileContext ConvertFileContext
    //{
    //    get => _convertFileContext.Value;
    //    set
    //    {

    //        var current = _convertFileContext.Value;
    //        if (value == null)
    //        {
    //            if (_parent.TryGetValue(current, out var parent))
    //                _convertFileContext.Value = parent;
    //        }
    //        else
    //        {
    //            _parent.Add(value, current);
    //            _convertFileContext.Value = value;
    //        }
    //    }
    //}
}